import axios from "axios";          //引入axios
import sysConfig from '@/config'    //引入配置文件

// console.log(process.env.NODE_ENV)

axios.defaults.baseURL = sysConfig.baseURL   //设置请求时间
axios.defaults.timeout = sysConfig.timeout   //设置请求超时时间
const ContentType = sysConfig.ContentType
axios.defaults.headers["Content-Type"] = "application/json";

/** 请求发送前拦截，用于配置求情内容，如headers参数等 */
axios.interceptors.request.use(
    (config) => {
        config.params.api_key = sysConfig.api_key
        return config
    },
    (error) => {
        return error
    }
)

/** 请求发送后返回拦截，用于处理数据格式等 */
axios.interceptors.response.use(
    (response) => {
        return response
    },
    (error) => {
        return error
    }
)

//封装http请求

var http = {
    /**
     * get请求
     * @param {*} url       请求地址
     * @param {*} params    请求参数，拼接再url地址栏后面，无需求时忽略该参数
     * @param {*} config    请求的config相关配置
     * @returns 
     */
    get: function (url, params = {}, config = {}) {
        return new Promise((resolve, reject) => {
            axios({
                url: url,
                method: 'get',
                params: params,
                config: config
            }).then((response) => {
                resolve(response.data)
            }).catch((error) => {
                reject(error)
            })
        })

    },

    /**
     * post请求
     * @param {*} url      请求地址 
     * @param {*} data     请求参数
     * @param {*} params   请求参数，拼接再url地址栏后面，无需求时忽略该参数
     * @param {*} config   请求的config相关配置
     * @returns 
     */
    post: function (url, data = {}, params = {}, config = {}) {
        return new Promise((resolve, reject) => {
            axios({
                url: url,
                method: 'post',
                data: data,
                params: params,
                config: config
            }).then((response) => {
                resolve(response.data)
            }).catch((error) => {
                reject(error)
            })
        })
    }
}

export default http;

